package com.mzy.linear_struct.subject;

/**
 * @Author: codermzy
 * @Date: 2024/05/02/下午9:21
 * @Description:
 */
public class 长度最小的子数组209 {
    public static int minSubArrayLen(int target, int[] nums) {
        // [2,3,1,2,4,3] target = 7

        //  l     i
        // [2,3,1,2,4,3]
        //        r
        //            l
        //            i
        // [2,3,1,2,4,3]
        //            r

        //      i
        //      l
        // [1,4,4]
        //      r



        // 1,1,1,1,1,1,1,1 target 11

        //               i
        // l
        // 1,1,1,1,1,1,1,1 target 11
        // r
        int n = nums.length;
        int l = 0;
        int s = 0;
        int min = Integer.MAX_VALUE;
        for (int i = 0; i < n; i++) {
            s += nums[i];
            while (s >= target) {
                min = Math.min(i - l + 1, min);
                s -= nums[l];
                l++;
            }
        }
        return min == Integer.MAX_VALUE ? 0 : min;

    }


    public static void main(String[] args) {
        int[] arr = {2, 3, 1, 2, 4, 3};
        System.out.println(minSubArrayLen(7, arr));
    }


}
